program prog;

type
	Datos = record
				Apellido: String;
				Nombre: String;
				Telefono: String;
			end;
var
	ficheroUno : file of Datos;
	ficheroDos : file of Datos;
	ficheroAuxiliar : file of Datos;
	datosUno, datosDos, aux: Datos;
	arrayDatosUno : array[1..8] of Datos;
	i, j, menor: integer;

begin

	assign(ficheroUno, 'c:\temp\datosUno.dat');
	assign(ficheroDos, 'c:\temp\datosDos.dat');
	assign(ficheroAuxiliar, 'c:\temp\fichero.dat');

	reset(ficheroUno);
	reset(ficheroDos);
	rewrite(ficheroAuxiliar);


//Leemos el primer fichero y lo metemos en el array
i:=1;
while not eof(ficheroUno) do
   begin
      read(ficheroUno,datosUno);
      arrayDatosUno[i] := datosUno;
      i := i+1;

   end;

//Leemos el segundo fichero y lo metemos en el mismo array, a continuacion de los datos del otro fichero
while not eof(ficheroDos) do
   begin
      read(ficheroDos, datosDos);
      arrayDatosUno[i] := datosDos;
      i := i+1;
   end;



//Una vez cargados todos los datos en el array, lo ordenamos
for i:= 1 to 8 do
  begin

  for j:=i+1 to 8 do
  	begin
	  menor := i;
	  if(arrayDatosUno[j].apellido < arrayDatosUno[menor].apellido) then
	    menor := j;

	  aux := arrayDatosUno[i];
	  arrayDatosUno[i] := arrayDatosUno[menor];
	  arrayDatosUno[menor] := aux;
	end;
end;


//Visualizamos el contenido ordenado
writeln();
writeln('Vemos el contenido ordenado y lo escribimos en c:\temp\fichero.dat: ');
writeln();

for i:= 1 to 8 do
  begin
      writeln('Apellido: ',arrayDatosUno[i].Apellido);
      writeln('nombre: ',arrayDatosUno[i].nombre);
      writeln('telefono: ',arrayDatosUno[i].telefono);
      writeln();
      write(ficheroAuxiliar,arrayDatosUno[i]);
  end;

writeln('FIN');
readln();

end.
